package com.test1.config;

import ch.qos.logback.core.db.DBHelper;
import com.test1.bean.Pet;
import com.test1.bean.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;


/**
 * @Author LuoYong
 * @Date 2022/6/16 17:18
 */
@Import({User.class, DBHelper.class})   //全类名形式导入bean，默认组件的名字就是全类名
@Configuration(proxyBeanMethods = false) //false：（Lite）需要new创建对象 true：（Full）代理单实例
// @ConditionalOnBean(name = "tom")
// @ConditionalOnMissingBean(name = "tom")  //没有指定bean的时候才生效
// @ImportResource("classpath:beans.xml")  //配置文件形式导入bean
// @EnableConfigurationProperties(Person.class)
//1、开启Person配置绑定功能
//2、把这个Person这个组件自动注册到容器中
public class MyConfig {


    /**
     * Full:外部无论对配置类中的这个组件注册方法调用多少次获取的都是之前注册容器中的单实例对象
     * bean: 默认以方法名作为bean的id
     */
    @Bean
    public User user01() {
        User zhangsan = new User("zhangsan", 18);
        //user组件依赖了Pet组件
        // zhangsan.setPet(tomcatPet());
        return zhangsan;
    }

    @Bean("tom22")
    public Pet tomcatPet() {
        return new Pet("tomcat", 20, 123.0);
    }

//    @Bean
//    public CharacterEncodingFilter filter(){
//        return null;
//    }
}
